// 匿名管道，用于父子进程间通信
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main() {
  int fd[2];
  // 创建管道
  pipe(fd);
  int pid = fork();
  // 子进程
  if (pid == 0) {
    // 关闭写管道
    close(fd[1]);
    char buf[1024] = {0};
    while (1) {
      if (read(fd[0], buf, 1024) > 0) {
        printf("pid is: %d ,recv message is: %s\n", getpid(), buf);
      } else {
        break;
      }
    }
  } else {
    // 关闭读管道
    close(fd[0]);
    for (int i = 0; i < 10; ++i) {
      write(fd[1], "hello", strlen("hello"));
      sleep(1);
    }
  }
}